'''
子查询:
    含义:
        出现在其他语句中的SELECT 语句称为子查询或者内查询
        外部的查询语句,称为主查询或者外查询

    分类:
        安子查询出现的位置:
            select 后面
                        仅仅支持标量子查询
            from 后面
                        支持表子查询
            where/having 后面            √
                        标量子查询  √ (单行)
                        列子查询  √  (多行)
                        行子查询
            exists 后面(相关子查询)
                        表子查询

    按结果集的行列数不同:
        标量子查询:(结果只有一行一列)
        列子查询:(结果集只有一列多行)
        行子查询:(结果集有一行多列)
        表子查询:(结果集就好了)

    from 后面
        将子查询结果充当一张表,要必须起别名

'''
'''
一. where/having 后面
1.标量子查询 (单行)
2.列子查询 (多行)
3.行子查询
特点:
    子查询放在小括号里
    子查询一般放在条件的右侧
    标量子查询,一般搭配单行操作符使用  > < >= <= <>
    列子查询,一般搭配多行操作符使用  in any some all
    
'''
import pymysql
conn = pymysql.connect(
    host='localhost',
    user='root',
    passwd='123456',
    db='db_library',
    port=3306,
    charset='utf8'
)
cur = conn.cursor()

# 案例1:谁的工资比ddd高:
#1.查询ddd的工资:
w = "SELECT salary FROM test WHERE name='ddd'"
#2.查询员工的信息,满足工资比ddd高条件:
w2 = "SELECT name FROM test WHERE salary>(SELECT salary FROM test WHERE name='ddd')"
cur.execute(w2)
ret = cur.fetchall()
print(ret)




























